package module03.task02;

import java.util.Scanner;

/**
 *  编程获取两个指定字符串中的最大相同子串。
 *     如： s1="asdafghjka", s2="aaasdfg" 他们的最大子串为"asd"
 *     提示： 将短的那个串进行长度依次递减的子串与较长的串比较。
 */
public class LongestSubstringTest {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("获取两个指定字符串中的最大相同子串：");
        System.out.println("请输入第一个字符串:");
        String s1 = sc.nextLine();
        System.out.println("请输入第二个字符串:");
        String s2 = sc.nextLine();
        System.out.println("最大相同子串为：" + getLongestSubstring(s1,s2));

    }

    public static String getLongestSubstring(String s1,String s2) {
        String max="";
        String min="";
        max=(s1.length()>s2.length())?s1:s2;
        min=(max==s1)?s2:s1;


        for(int x=0;x<min.length();x++){
            for(int y=0,z=min.length()-x;z!=min.length()+1;y++,z++){
                String temp=min.substring(y, z);

                if(max.contains(temp))
                    return temp;
            }
        }
        return null;

    }
}
